package com.zengqingfa.designpattern.behavior.chain.stock;

//抽象处理者类，
public abstract class AbstractHandler {

    // 捕获具体请求并进行处理
    public final void handleJudgment(AbstractJudgment request) {
        // 先由自己处理
        boolean result = this.handle(request);
        System.out.println(result);
        //判断是否符合我们的要求，当判断类判断出
        if (result) {
            System.out.println("处理有结果。。。");
            //符合，终止
            return;
        } else {
            //不符合，继续传递给下一条链
            if (request.nextJudg != null) {
                System.out.println("传递给下一个条件来处理...");
                //递归调用
                handleJudgment(request.nextJudg);
            } else {
                System.out.println("处理无结果。。。");
            }
        }
    }


    // 定义链中每个处理者具体的处理方式
    protected abstract Boolean handle(AbstractJudgment request);

}
